package faktorI;

public class Pravilo extends Elem{
	private Zakljucak zakljucak;
	private Preduslov preduslov;
	private double faktorI;
	private double mbZ;
	private double mdZ;
	private int redniBroj;
	
	public Pravilo(){
		preduslov = new Preduslov();
	}
	public void setZakljucak(Zakljucak zaklj){zakljucak = zaklj;}
	public void setPreudslov(Preduslov pred){preduslov = pred;}
	public void setFaktorI(double faktorI){
		this.faktorI = faktorI;
		if(this.faktorI > 0){mbZ = faktorI; mdZ = 0;}
		else {mdZ = -1 * faktorI; mbZ = 0;}
	}
	public void setRedniBroj(int redniBroj){this.redniBroj = redniBroj;}
	
	public Zakljucak getZakljucak(){return zakljucak;}
	public Preduslov getPreduslov(){return preduslov;}
	public double getFaktorI(){return faktorI;}
	public double getMBZ(){return mbZ;}
	public double getMDZ(){return mdZ;}
	public int getRedniBroj(){return redniBroj;}
	
	public boolean jednako(Pravilo pravilo){
		if(this.zakljucak.getNaziv().equals(pravilo.getZakljucak().getNaziv()) &&
			this.preduslov.jednako(pravilo.getPreduslov()))return true;
		else return false;	
	}
	public void updateOpazanja(Opazanje operand){
		preduslov.updateOpazanja(operand);
	}
	
	public void refresh(){
		preduslov.refresh();
		zakljucak.refresh();
		redniBroj = 0;
	}
	
	public String toString() {
		String s = "AKO \n";
		s += "" + preduslov + "\n";
		s += "ONDA \n";
		s += "(" + faktorI + ")";
		s += "" + zakljucak;
		return s;
	}
}
